package {

	import flexunit.framework.Test;
	import flexunit.framework.TestSuite;

	import org.molamil.acto.commands.CommandsParserTest;
	import org.molamil.acto.commands.VoidCommandTest;
	import org.molamil.acto.core.parsers.PrioritizableListTest;
	import org.molamil.acto.pages.PagesParserTest;
	import org.molamil.acto.pages.SimplePageBlockFactoryTest;
	import org.molamil.acto.props.ExpressionResolverTest;
	import org.molamil.acto.props.NativePropsParserTest;
	import org.molamil.acto.types.BooleanTypeParserTest;
	import org.molamil.acto.types.DateTypeParserTest;
	import org.molamil.acto.types.DefaultTypeResolverTest;
	import org.molamil.acto.types.IntTypeParserTest;
	import org.molamil.acto.types.NullTypeParserTest;
	import org.molamil.acto.types.NumberTypeParserTest;
	import org.molamil.acto.types.StringTypeParserTest;
	import org.molamil.acto.types.UintTypeParserTest;
	import org.molamil.acto.utils.ObjectUtilsTest;
	
	[Suite]
	[RunWith("org.flexunit.runners.Suite")]
	public class AllTests {
		
			
			// props
			public var nativePropsParserTest:NativePropsParserTest;
			public var expressionResolverTest:ExpressionResolverTest;
			
			// types
			public var stringTypeParserTest:StringTypeParserTest;
			public var booleanTypeParserTest:BooleanTypeParserTest;
			public var numberTypeParserTest:NumberTypeParserTest;
			public var intTypeParserTest:IntTypeParserTest;
			public var uintTypeParserTest:UintTypeParserTest;
			public var nullTypeParserTest:NullTypeParserTest;
			public var dateTypeParserTest:DateTypeParserTest;
			public var defaultTypeResolverTest:DefaultTypeResolverTest;
			
			// core.parsers
			public var prioritizableListTest:PrioritizableListTest;
			
			// utils
			public var objectUtilsTest:ObjectUtilsTest;
			
			// pages
			public var pagesParserTest:PagesParserTest;
			public var simplePageBlockFactoryTest:SimplePageBlockFactoryTest;
		
			// commands
			public var commandsParserTest:CommandsParserTest;
			public var voidCommandTest:VoidCommandTest;
			
			
		
		public static function suite():Test{
			
//			Logger.level = Logger.LEVEL_DEBUG;
			
			var testSuite:TestSuite = new TestSuite();
			
			// props
			testSuite.addTest(new TestSuite(NativePropsParserTest));
			testSuite.addTest(new TestSuite(ExpressionResolverTest));
			
			// types
			testSuite.addTest(new TestSuite(StringTypeParserTest));
			testSuite.addTest(new TestSuite(BooleanTypeParserTest));
			testSuite.addTest(new TestSuite(NumberTypeParserTest));
			testSuite.addTest(new TestSuite(IntTypeParserTest));
			testSuite.addTest(new TestSuite(UintTypeParserTest));
			testSuite.addTest(new TestSuite(NullTypeParserTest));
			testSuite.addTest(new TestSuite(DateTypeParserTest));
			testSuite.addTest(new TestSuite(DefaultTypeResolverTest));
			
			// core.parsers
			testSuite.addTest(new TestSuite(PrioritizableListTest));
			
			// utils
			testSuite.addTest(new TestSuite(ObjectUtilsTest));
			
			// pages
			testSuite.addTest(new TestSuite(PagesParserTest));
			testSuite.addTest(new TestSuite(SimplePageBlockFactoryTest));
		
			// commands
			testSuite.addTest(new TestSuite(CommandsParserTest));
			testSuite.addTest(new TestSuite(VoidCommandTest));
			
			return testSuite;
			
		}
		
	}
	
}